package tralala.server.remote;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.List;

import tralala.server.CancionService;
import tralala.server.UsuarioService;
import tralala.server.data.Cancion;
import tralala.server.data.Usuario;
import tralala.server.data.dto.CancionAssembler;
import tralala.server.data.dto.CancionDTO;
import tralala.server.data.dto.UsuarioAssembler;
import tralala.server.data.dto.UsuarioDTO;

public class TralalaManager extends UnicastRemoteObject implements ITralalaManager {


	private static final long serialVersionUID = 1L;
	private String serverName;
	private CancionService canc;
	private UsuarioService us;

	public TralalaManager(String serverName) throws RemoteException {
		super();
		this.serverName = serverName;
		canc = new CancionService();
	}
	
	public UsuarioDTO login(String nick, String password) throws RemoteException {
		return UsuarioAssembler.assemble(us.login(nick, password));		
	}
	
	public void reprCancion(Usuario usu, Cancion can)
	{
		
	}
	
	public String getName() {
		return serverName;
	}
	
	public CancionDTO getCancion(String titulo) throws RemoteException {
		return CancionAssembler.assemble(canc.getCancion(titulo));
	}
	
	public UsuarioDTO getUsuario(String nick) throws RemoteException {
		return UsuarioAssembler.assemble(us.getUsuario(nick));
	}
	
	public UsuarioDTO crearCuenta(String nick, String nombre, String apellidos, String email, String password) throws RemoteException{
		Usuario usuario = us.crearCuenta(nick, nombre, apellidos, email, password);
		return UsuarioAssembler.assemble(usuario);
	}

	
//	public List<UsuarioDTO> getReproducciones(String nick) throws RemoteException{
//		return UsuarioAssembler.assemble(us.getUsuario(nick).getReproducciones());
//	}
	
	public List<CancionDTO> buscarCancion(String titulo, String artista) throws RemoteException {
		return CancionAssembler.assemble(canc.buscarCancion(titulo, artista));
	}

	@Override
	public List<UsuarioDTO> getReproducciones(String nick)
			throws RemoteException {
		// TODO Auto-generated method stub
		return null;
	}
	
}
